package RateModel

import (
	"time"
)

// User 用户表结构体
type User struct {
	ID                    int64      `gorm:"column:id;primary_key;AUTO_INCREMENT;comment:'主键'" json:"id"`
	UserID                string     `gorm:"column:user_id;unique;not null;comment:'用户guid'" json:"user_id"`
	UserChineseName       string     `gorm:"column:user_chinese_name;comment:'用户中文名'" json:"user_chinese_name"`
	UserStaffName         string     `gorm:"column:user_staff_name;comment:'内部员工，英文名，外部人员留空'" json:"user_staff_name"`
	UserStaffID           *int       `gorm:"column:user_staff_id;comment:'内部员工，员工id，外部人员留空'" json:"user_staff_id,omitempty"`
	UserOpenID            string     `gorm:"column:user_openid;not null;comment:'用户的openid'" json:"user_openid"`
	UserMobile            *string    `gorm:"column:user_mobile;comment:'用户手机号，用于实名，支持+86'" json:"user_mobile,omitempty"`
	UserIDCardType        *string    `gorm:"column:user_idcard_type;default:'ID_CARD';comment:'证件类型'" json:"user_idcard_type,omitempty"`
	UserIDCardNo          *string    `gorm:"column:user_idcard_no;comment:'证件号（前期只支持身份证号）'" json:"user_idcard_no,omitempty"`
	EssUserID             *string    `gorm:"column:ess_userid;comment:'腾讯电子签约回调的用户id'" json:"ess_userid,omitempty"`
	EssStatus             int8       `gorm:"column:ess_status;not null;comment:'1-实名认证通过、2-实名认证中、3-待发起实名认证'" json:"ess_status"`
	EssVerifyTime         *time.Time `gorm:"column:ess_verify_time;comment:'腾讯电子签实名认证时间'" json:"ess_verify_time,omitempty"`
	MdmID                 *string    `gorm:"column:mdm_id;comment:'接入mdm系统产生的id'" json:"mdm_id,omitempty"`
	Region                *string    `gorm:"column:region;comment:'客户所属国家地区'" json:"region,omitempty"`
	CustomerNature        int8       `gorm:"column:customer_nature;not null;comment:'客户性质'" json:"customer_nature"`
	CustomerType          *int8      `gorm:"column:customer_type;comment:'客户类别'" json:"customer_type,omitempty"`
	CreateTime            time.Time  `gorm:"column:create_time;not null;comment:'创建时间'" json:"create_time"`
	UpdateTime            time.Time  `gorm:"column:update_time;not null;comment:'更新时间'" json:"update_time"`
	EmergencyContactName  *string    `gorm:"column:emergency_contact_name;comment:'紧急联系人中文名'" json:"emergency_contact_name,omitempty"`
	EmergencyContactPhone *string    `gorm:"column:emergency_contact_phone;comment:'紧急联系人电话'" json:"emergency_contact_phone,omitempty"`
	UserNickName          *string    `gorm:"column:user_nick_name;comment:'用户昵称'" json:"user_nick_name,omitempty"`
	UserEmail             *string    `gorm:"column:user_email;comment:'邮件'" json:"user_email,omitempty"`
}

// TableName 设置User表名为"user"
func (User) TableName() string {
	return "user"
}
